package com.br.betelgeuse.banco;

import java.util.List;

import com.br.betelgeuse.model.Candidato;

public interface CandidatoHibernateDAO {
	
	/*
	 * Metodo para persistir Candidato.
	 * @Param: Candidato candidato.
	 */
	public void persistirCandidato(Candidato candidato);
	
	/*
	 * Metodo para buscar Candidato.
	 * @Param: int idOuCpfOuRg
	 * @Return: Candidato candidato
	 */
	public Candidato buscarCandidato(String CpfOuRg);
	
	/*
	 * Metodo para alterar Candidato.
	 * @Param: Candidato candidato
	 */
	public void alterarCandidato(Candidato candidato);
	
	/*
	 * Metodo para remover Candidato.
	 * @Param: Candidato candidato.
	 */
	public void removerCandidato(Candidato candidato);
	
	/*
	 * Metodo para retornar lista de Candidatos.
	 */
	public List<Candidato> listarCandidatos();

	/*
	 * Metodo para retornar lista de Candidatos Selecionados..
	 */
	public List<Candidato> listarCandidatosSelecionados(List<Integer> idsCandidatosSelecionados);
	
	/*
	 * Metodo para gerar candidatos selecionados.
	 */
	public List<Candidato> gerarSelecaoCandidatos(int quantidadeCandidatosSelecionados);

		
}
